Сервер CAS (SSO)
Central Authentication Service (CAS) — это протокол единого входа в систему для веб-приложений.
CAS очень полезен в средах, где несколько различных веб-приложений используют общий набор пользователей. Если все веб-приложения будут «CASified», пользователь войдет в систему один раз и сможет перемещаться между различными веб-приложениями без необходимости повторно предоставлять учётные данные для аутентификации. CAS соотносится с механизмом аутентификации Shibboleth, но его гораздо проще настроить, и в нём отсутствует ряд более широких функций, таких как федеративное доверие и инфраструктура авторизации.
По сути, CAS работает путём настройки сайта Moodle таким образом, чтобы он не выполнял аутентификацию самостоятельно, а перенаправлял неаутентифицированных пользователей на сервер CAS, который затем возвращает токен аутентификации на сайт Moodle. Moodle может извлечь имя пользователя из токена, а затем использовать свои внутренние механизмы авторизации (роли, регистрации, возможности) и атрибуты пользователя (имя, фотография и т. д.). Преимущество заключается в том, что сайту Moodle никогда не приходится обрабатывать пароли, и пользователи после первой аутентификации могут беспрепятственно переходить на другое веб-приложение без необходимости повторно предоставлять свои учётные данные.
Включение аутентификации сервера CAS
Администратор может включить аутентификацию сервера CAS следующим образом:
- Перейдите в Администрирование сайта > Плагины > Аутентификация > Управление аутентификацией и нажмите на значок глаза напротив сервера CAS (SSO). После включения он больше не будет выделен серым цветом.
- Нажмите на ссылку настроек, настройте по мере необходимости, затем нажмите кнопку «Сохранить изменения».
Одно предостережение для тех, кто переходит с LDAP или других механизмов аутентификации:
Для любого пользователя, которого вы хотите аутентифицировать с помощью CAS, но который уже использовал Moodle и, следовательно, имеет запись в базе данных Moodle, вам необходимо изменить значение поля «auth» для пользователя в таблице mdl_user. Так, если раньше они использовали LDAP, но теперь вы хотите, чтобы они использовали CAS, а их имя пользоват еля — «foobar», вам нужно будет отредактировать базу данных с помощью некоторого SQL примерно так:
UPDATE mdl_user SET auth='cas' where auth='ldap' and username='foobar';
Без этого изменения пользователю постоянно будет отображаться сообщение об ошибке входа в систему, но при этом не будет никаких подсказок относительно того, почему вход не удался, даже если их учётные данные были приняты сервером CAS.
Включение синхронизации учётных записей CAS
Задание синхронизации пользователей CAS (\auth_cas\task\sync_task) планируемая задача (новое в Moodle 3.0; ранее существовал скрипт CLI) отвечает за создание и обновление информации о пользователях, а также приостановку и удаление учётных записей CAS.
После включения аутентификации сервера CAS администратору необходимо включить и настроить задание синхронизации пользователей CAS следующим образом:
- Перейдите в Администрирование сайта > Сервер > Планировщик задач и нажмите на значок шестерёнки напротив задания синхронизации пользователей CAS.
- Выберите желаемую частоту запуска и включите задачу, сняв флажок «Отключено».
Любые вопросы?
Пожалуйста, опубликуйте их на форуме аутентификации на moodle.org.